# Disable loading these resources for speed
DEFAULT_DISABLED_RESOURCES = {
    'font',
    'image',
    'media',
    'beacon',
    'object',
    'imageset',
    'texttrack',
    'websocket',
    'csp_report',
    'stylesheet',
}

DEFAULT_STEALTH_FLAGS = (
    # Explanation: https://peter.sh/experiments/chromium-command-line-switches/
    # Generally this will make the browser faster and less detectable
    '--no-pings',
    '--incognito',
    '--test-type',
    '--lang=en-US',
    '--mute-audio',
    '--no-first-run',
    '--disable-sync',
    '--hide-scrollbars',
    '--disable-logging',
    '--start-maximized',  # For headless check bypass
    '--enable-async-dns',
    '--disable-breakpad',
    '--disable-infobars',
    '--accept-lang=en-US',
    '--use-mock-keychain',
    '--disable-translate',
    '--disable-extensions',
    '--disable-voice-input',
    '--window-position=0,0',
    '--disable-wake-on-wifi',
    '--ignore-gpu-blocklist',
    '--enable-tcp-fast-open',
    '--enable-web-bluetooth',
    '--disable-hang-monitor',
    '--password-store=basic',
    '--disable-cloud-import',
    '--disable-default-apps',
    '--disable-print-preview',
    '--disable-dev-shm-usage',
    # '--disable-popup-blocking',
    '--metrics-recording-only',
    '--disable-crash-reporter',
    '--disable-partial-raster',
    '--disable-gesture-typing',
    '--disable-checker-imaging',
    '--disable-prompt-on-repost',
    '--force-color-profile=srgb',
    '--font-render-hinting=none',
    '--no-default-browser-check',
    '--aggressive-cache-discard',
    '--disable-component-update',
    '--disable-cookie-encryption',
    '--disable-domain-reliability',
    '--disable-threaded-animation',
    '--disable-threaded-scrolling',
    # '--disable-reading-from-canvas',  # For Firefox
    '--enable-simple-cache-backend',
    '--disable-background-networking',
    '--disable-session-crashed-bubble',
    '--enable-surface-synchronization',
    '--disable-image-animation-resync',
    '--disable-renderer-backgrounding',
    '--disable-ipc-flooding-protection',
    '--prerender-from-omnibox=disabled',
    '--safebrowsing-disable-auto-update',
    '--disable-offer-upload-credit-cards',
    '--disable-features=site-per-process',
    '--disable-background-timer-throttling',
    '--disable-new-content-rendering-timeout',
    '--run-all-compositor-stages-before-draw',
    '--disable-client-side-phishing-detection',
    '--disable-backgrounding-occluded-windows',
    '--disable-layer-tree-host-memory-pressure',
    '--autoplay-policy=no-user-gesture-required',
    '--disable-offer-store-unmasked-wallet-cards',
    '--disable-blink-features=AutomationControlled',
    '--webrtc-ip-handling-policy=disable_non_proxied_udp',
    '--disable-component-extensions-with-background-pages',
    '--force-webrtc-ip-handling-policy=disable_non_proxied_udp',
    '--enable-features=NetworkService,NetworkServiceInProcess,TrustTokens,TrustTokensAlwaysAllowIssuance',
    '--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4',
    '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,TranslateUI,BlinkGenPropertyTrees',
)

# Defaulting to the docker mode, token doesn't matter in it as it's passed for the container
NSTBROWSER_DEFAULT_QUERY = {
    "once": True,
    "headless": True,
    "autoClose": True,
    "fingerprint": {
        "flags": {
            "timezone": "BasedOnIp",
            "screen": "Custom"
        },
        "platform": 'linux',  # support: windows, mac, linux
        "kernel": 'chromium',  # only support: chromium
        "kernelMilestone": '128',
        "hardwareConcurrency": 8,
        "deviceMemory": 8,
    },
}
